const { PrismaClient } = require('@prisma/client');
const { generateAdminToken } = require('../middleware/auth');

const prisma = new PrismaClient();

/**
 * 为现有管理员生成Token
 */
async function createAdminToken() {
  try {
    console.log('🔍 查找管理员账户...');
    
    // 查找管理员
    const admin = await prisma.administrators.findFirst({
      where: { username: 'admin' }
    });
    
    if (!admin) {
      console.log('❌ 没有找到管理员账户');
      return;
    }
    
    console.log('✅ 找到管理员账户:', admin.username);
    
    // 生成Token
    const token = generateAdminToken(admin);
    
    console.log('🎉 管理员Token生成成功！');
    console.log('');
    console.log('📋 请复制以下Token到浏览器localStorage中：');
    console.log('');
    console.log('Key: admin_token');
    console.log('Value:', token);
    console.log('');
    console.log('🔧 操作步骤：');
    console.log('1. 打开浏览器开发者工具 (F12)');
    console.log('2. 进入 Application/Storage -> Local Storage');
    console.log('3. 选择您的管理员页面域名');
    console.log('4. 添加新项目：');
    console.log('   - Key: admin_token');
    console.log('   - Value: ' + token);
    console.log('5. 刷新页面即可登录');
    
  } catch (error) {
    console.error('❌ 生成Token失败:', error);
  } finally {
    await prisma.$disconnect();
  }
}

// 如果直接运行此脚本
if (require.main === module) {
  createAdminToken()
    .then(() => {
      process.exit(0);
    })
    .catch((error) => {
      console.error('❌ 脚本执行失败:', error);
      process.exit(1);
    });
}

module.exports = { createAdminToken };
